<?php

namespace colciencias\Bundle\WebBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Areasconocimiento
 *
 * @ORM\Table(name="AREASCONOCIMIENTO")
 * @ORM\Entity
 */
class Areasconocimiento
{
    /**
     * @var string
     *
     * @ORM\Column(name="NOMBRE", type="string", length=50, nullable=false)
     */
    private $nombre;

    /**
     * @var integer
     *
     * @ORM\Column(name="ID", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="SEQUENCE")
     * @ORM\SequenceGenerator(sequenceName="AREASCONOCIMIENTO_ID_seq", allocationSize=1, initialValue=1)
     */
    private $id;

    /**
     * @var \Doctrine\Common\Collections\Collection
     *
     * @ORM\ManyToMany(targetEntity="colciencias\Bundle\WebBundle\Entity\Propuestas", inversedBy="areasconocimiento")
     * @ORM\JoinTable(name="palabrasclave_propuesta",
     *   joinColumns={
     *     @ORM\JoinColumn(name="AREASCONOCIMIENTO_ID", referencedColumnName="ID")
     *   },
     *   inverseJoinColumns={
     *     @ORM\JoinColumn(name="PROPUESTAS_ID", referencedColumnName="ID")
     *   }
     * )
     */
    private $propuestas;

    /**
     * @var \Doctrine\Common\Collections\Collection
     *
     * @ORM\ManyToMany(targetEntity="colciencias\Bundle\WebBundle\Entity\Evaluadores", inversedBy="areasconocimiento")
     * @ORM\JoinTable(name="areasconocimiento_evaluador",
     *   joinColumns={
     *     @ORM\JoinColumn(name="AREASCONOCIMIENTO_ID", referencedColumnName="ID")
     *   },
     *   inverseJoinColumns={
     *     @ORM\JoinColumn(name="EVALUADORES_ID", referencedColumnName="ID")
     *   }
     * )
     */
    private $evaluadores;

    /**
     * Constructor
     */
    public function __construct()
    {
        $this->propuestas = new \Doctrine\Common\Collections\ArrayCollection();
        $this->evaluadores = new \Doctrine\Common\Collections\ArrayCollection();
    }


    /**
     * Set nombre
     *
     * @param string $nombre
     * @return Areasconocimiento
     */
    public function setNombre($nombre)
    {
        $this->nombre = $nombre;

        return $this;
    }

    /**
     * Get nombre
     *
     * @return string 
     */
    public function getNombre()
    {
        return $this->nombre;
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Add propuestas
     *
     * @param \colciencias\Bundle\WebBundle\Entity\Propuestas $propuestas
     * @return Areasconocimiento
     */
    public function addPropuesta(\colciencias\Bundle\WebBundle\Entity\Propuestas $propuestas)
    {
        $this->propuestas[] = $propuestas;

        return $this;
    }

    /**
     * Remove propuestas
     *
     * @param \colciencias\Bundle\WebBundle\Entity\Propuestas $propuestas
     */
    public function removePropuesta(\colciencias\Bundle\WebBundle\Entity\Propuestas $propuestas)
    {
        $this->propuestas->removeElement($propuestas);
    }

    /**
     * Get propuestas
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getPropuestas()
    {
        return $this->propuestas;
    }

    /**
     * Add evaluadores
     *
     * @param \colciencias\Bundle\WebBundle\Entity\Evaluadores $evaluadores
     * @return Areasconocimiento
     */
    public function addEvaluadore(\colciencias\Bundle\WebBundle\Entity\Evaluadores $evaluadores)
    {
        $this->evaluadores[] = $evaluadores;

        return $this;
    }

    /**
     * Remove evaluadores
     *
     * @param \colciencias\Bundle\WebBundle\Entity\Evaluadores $evaluadores
     */
    public function removeEvaluadore(\colciencias\Bundle\WebBundle\Entity\Evaluadores $evaluadores)
    {
        $this->evaluadores->removeElement($evaluadores);
    }

    /**
     * Get evaluadores
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getEvaluadores()
    {
        return $this->evaluadores;
    }
}
